1. Field of the Invention
The present invention relates to methods and apparatus for displaying three dimensional graphics objects and more particularly to data processing apparatus and methods for generating and manipulating three dimensional objects on a graphics display system.
2. Description of Related Art
Computer graphics systems are frequently used to model three dimensional objects and then display them on a two dimensional output device such as a cathode ray tube. Displaying three dimensional objects on a two dimensional display device requires the system to recognize and eliminate hidden surfaces and lines to obtain the desired three dimensional affect. One method for eliminating hidden surfaces of the image involves the use of a depth buffer or Z-buffer. The Z-buffer is a large array of memory with an entry for each picture element, or pixel, on the display device.
The Z axis in a graphics system reflects the distance from a specified observer's viewpoint. Thus, a larger Z value represents a greater distance from the viewpoint. A comparison of Z values of points on the generated objects determines which object is closest to the viewpoint and therefore should appear on the two dimensional display. In Z-buffer systems as each pixel is generated its Z coordinate (ZNEW) is compared with the Z coordinate previously stored in the Z-buffer (ZOLD). If ZOLD does not exist, then ZNEW is compared to the Z coordinate of the background. If ZNEW is less than ZOLD (indicating that this pixel is closer to the viewpoint than the previous viewpoint), then the pixel is written to the display device and the Z-buffer memory is updated to contain ZNEW. If ZNEW is greater than or equal to ZOLD, then the pixel is not written and the Z-buffer remains unchanged. A description of the Z-buffer technique is presented in the book Fundamentals of Interactive Computer Graphics by J. D. Foley and A. Van Dam, Addison-Wesley Publishing Co., 1982, pp. 560-561.
The use of a Z-buffer simplifies the solution of the hidden surface problem, however the speed at which the Z-buffer memory can be read, compared, and updated limits the graphic system pixel writing speed. The large amount of memory required, typically 1 megabyte or more, and the cost of these devices dictates the use of dynamic random access memory (DRAM) instead of more costly static random access memory (SRAM). Commercially available DRAMs have typical read-modify-write (RMW) cycle times of approximately 200 nanoseconds (ns).
The typical computer graphics processor is capable of generating pixel data at high speed, typically 100 ns per pixel, and a display device is typically capable for receiving pixel data at equally high speeds. Therefore the slow RMW cycle time of the DRAM is a limiting factor in the ability to speed the display generation process.
One effort to overcome the speed limitation is found in U.S. Pat. No. 4,679,041, "High Speed Z-Buffer With Dynamic Random Access Memory" to Fetter et al. Fetter et al. recognize the limitation of slow DRAM cycle times and implement a system that overlaps the ZNEW calculation with the ZOLD read-modify-write cycle. The Fetter et al. solution, however, is still limited in its ability to reduce the Z-buffer cycle times. Modern graphics processing systems require even faster Z-buffer processing